Defines an extensible force element between two attachment points. The element force acts along the line from point 1 to point 2. Body index zero denotes a fixed ground point whose coordinates are expressed in world coordinates. Subtypes override evaluate_force to compute a force from the current length and length rate.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public | :: | body_1 | = | 0 |
The one-based body index for the first attachment point, or zero for a ground point. |
|
| integer(kind=int32), | public | :: | body_2 | = | 0 |
The one-based body index for the second attachment point, or zero for a ground point. |
|
| real(kind=real64), | public, | dimension(3) | :: | point_1 | = | 0.0d0 |
The first attachment point in body_1 coordinates, or in world coordinates when body_1 is zero. |
| real(kind=real64), | public, | dimension(3) | :: | point_2 | = | 0.0d0 |
The second attachment point in body_2 coordinates, or in world coordinates when body_2 is zero. |
Returns the signed axial force for a given element length and length rate. The base implementation returns zero.
Evaluates the default axial force law, which produces no force.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(axial_force_element), | intent(in) | :: | this |
The axial element being evaluated. |
||
| real(kind=real64), | intent(in) | :: | length |
The current element length and its time derivative. They are unused by the zero-force law. |
||
| real(kind=real64), | intent(in) | :: | length_rate |
The current element length and its time derivative. They are unused by the zero-force law. |
The signed axial force, equal to zero.